package Administrador.Interfaz;

import Administrador.Interfaz.BotonTransparente;
import Administrador.Interfaz.PanelCentral;
import Administrador.Interfaz.Ventana;
import Administrador.Interfaz.VentanaPrincipal;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author lady
 */
public class VentanaCliente extends Ventana implements ActionListener {
   

    public JFrame ventanaCliente;
    public CardLayout cardLayout;
    JPanel panelDinamico;
    PanelCentral panelCentral;
    public JLabel cliente;
    public BotonTransparente btPrincipal;
    public JButton nvCliente,ctCliente,mdCliente;
                  
    
    public VentanaCliente()
    {
       ventanaCliente= new JFrame("SIVOUT-Sistema de Manejo de informacion de ventas para Outdoor-Shop");
       ventanaCliente.setSize(1050,620);
       ventanaCliente.setLocationRelativeTo(null);
       ventanaCliente.setLayout(null);
       ventanaCliente.setResizable(false);
       ventanaCliente.setVisible(true);
       ventanaCliente.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       
       ventanaCliente.add(acomodarComponentes());
    }
    
   
    protected JPanel acomodarComponentes() {
        
      cardLayout = new CardLayout();
      panelCentral = new PanelCentral();
      
      //Contiene todos los paneles de la ventana
      JPanel contenedor = new JPanel();
      contenedor.setSize(1050, 620);
      contenedor.setLayout(null);
      
      //Contiene Imagen de Fondo y transparencia de fondo. Crear para todos los Frames
      JPanel contenidoFondo= asignarPanelGeneral();
      contenidoFondo.setBounds(0, 0, 1050, 620);
      contenidoFondo.setLayout(null);
            
      
      inicializarBotonesYEtiquetasLaterales();
      //Contiene los botones laterales: nuevo,consultar,modificar,eliminar y etiquetas laterales.
      // Maximo 8 botones, maximo 2 labels. Crear para tienda,Personal,Clientes,Reportes
      JPanel panelLateral= panelCentral.obtenerPanelLateral(cliente,null,btPrincipal,
              nvCliente,ctCliente,mdCliente,null,null,null,null,null);
      
      //Fondo para el Panel derecho y el titulo de la barra gris.
      JPanel panelPrincipal= panelCentral.obtenerPanelPrincipal("ADMINISTRAR INFORMACION DE CLIENTE");
      
      //Contiene todos los paneles que se mostraran segun el boton clickeado.
      JPanel panelD=acomodarPaneles();
      
      //Se adicionan los paneles al contenedor
      contenedor.add(panelD);
      contenedor.add(panelPrincipal);
      contenedor.add(panelLateral);
      contenedor.add(contenidoFondo);     
      return contenedor;
      
    }
    
    public void inicializarBotonesYEtiquetasLaterales()
    {
        
        
        cliente = new JLabel("Cliente");
        
        btPrincipal= new BotonTransparente(Color.BLACK);
        btPrincipal.setText("Principal");
        btPrincipal.addActionListener(this);
        
        nvCliente = new BotonTransparente(Color.BLACK);
        nvCliente.setText("Nuevo");
        nvCliente.addActionListener(this);
        
        ctCliente = new BotonTransparente(Color.BLACK);
        ctCliente.setText("Consultar");
        ctCliente.addActionListener(this);
        
        mdCliente = new BotonTransparente(Color.BLACK);
        mdCliente.setText("Modificar");
        mdCliente.addActionListener(this);
    }
    
    public JPanel acomodarPaneles()
    {
     
      InterfazCliente objCliente = new InterfazCliente();
      JPanel panelInicial = new JPanel();
      panelInicial.setOpaque(false);
 
      //Contienen los paneles que se mostraran segun el boton clickeado.
      panelDinamico = new JPanel();
      panelDinamico.setLayout(cardLayout);
      panelDinamico.setOpaque(false);
      panelDinamico.setVisible(true);
      
      // se ingresa el objeto panel y se le asigna un nombre.
      panelDinamico.add(panelInicial,"panel0");
      panelDinamico.add(objCliente.registrarCliente(), "panelA");
      panelDinamico.add(objCliente.consultarCliente(), "panelB");
      panelDinamico.add(objCliente.modificarCliente(), "panelC");
           
      panelDinamico.setBounds(184,70, 870, 490);
           
      return panelDinamico;
        
    }
    
    @Override
    public void actionPerformed(ActionEvent evento) {
        
        if(evento.getSource()== btPrincipal)
        {
            new VentanaPrincipal();
            ventanaCliente.dispose();
        }
        if(evento.getSource()== nvCliente)
        {
            //para mostrar el panel que corresponde a ese boton
            //cardLayout.show(panelDinamico, nombre dado al panel en el metodo acomodar componentes)
           cardLayout.show(panelDinamico, "panelA");
        }
        else
        {
            if(evento.getSource()== ctCliente)
            { 
                cardLayout.show(panelDinamico, "panelB");
            }
            else
            {
                if(evento.getSource()== mdCliente)
                { 
                    cardLayout.show(panelDinamico, "panelC");
                }
               
                }
            }
        
       
       
        
        
    }
    
    
}
    


